/*
命令管道popen
    popen函数是一个标准的C库函数，它用于创建一个进程来执行指定的命令，
    并打开一个管道(pipe)以便可以从该命令的输出中读取数据或向该命令写入数据。
    他类似于system函数，但提供了更细腻度的控制，因为它允许你与被执行的命令进行输入或输出
    的交互。

#include <stdio.h>

FILE *popen(const char *command,const char *type);
功能：popen函数用于执行一个命令，并打开一个管道，以便读取该命令的输出或向其写入数据。
        这个管道连接到新进程的标准输入或标准输出。
参数：
    command:要执行的命令字符串。
    type：指定管道的类型；
        "r":打开管道以读取命令的输出。
        "w":打开管道以写入数据到命令的标准输入。
返回值：
    成功:返回一个指向FILE结构的指针，可用于读取或写入命令的标准输入输出。
    失败：返回NULL，并设置errno来指示错误。
*/
#include "head.h"
int main(int argc,const char *argv[])
{
    FILE *fp;
    char buf[1024];
    fp=popen("ls -l","r");

    if (fp == NULL) {
        perror("popen 失败");
        return 1;
    }
    
    while(fgets(buf,sizeof(buf),fp) != NULL)
    {
        printf("张三%s",buf);
    }
    pclose(fp);
    return 0;
}